import React, { Component, PureComponent } from 'react'
// `PureComponnet`里如果接收到的新属性或者是更改后的状态和
// 原属性、原状态相同的话，就不会去重新render了
// PureComponent React认为你不需要更新组件
// 相当于 React 自动添加了 shouldComponentUpdate
// 但是如果真添加 shouldComponentUpdate，以添加的优先 ---- 会报警告信息
class Child extends PureComponent {
  // shouldComponentUpdate () {
  //   return true
  // }
  render () {
    console.log('child render')
    return (
      <div>child</div>
    )
  }
}
export default class App extends Component {
  state = { count: 10 }
  render() {
    return (
      <div>
        <button onClick = { () => {
          // 模仿 新旧属性值 保持一致
          // 子组件分别 继承 PureComponent 和  Component 查看打印的结果
          this.setState({
            count: this.state.count
          })
        }}>加</button>{ this.state.count }
        <Child test={ this.state.count }/>
      </div>
    )
  }
}
